package com.black.platform.organization.po;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.Data;


import java.time.LocalDateTime;

/**
 * 组织机构实体类
 * 归属代码定义(440104)
 * 中国省市县地区代码
 * 前两位：省级 44 代表广东
 * 中间两位：地级市 4401 代表广州市
 * 后两位： 县级市 440104 代表广州市越秀区
 * @author linwenfeng
 */
@Data
public class Organization {
    /**
     * 组织代码
     **/
    @TableId(value = "com_code")
    private String comCode;
    /**
     * 组织名称
     **/
    @TableField("com_name")
    private String comName;
    /**
     * 上级ID
     **/
    @TableField("upper_code")
    private String upperCode;
    /**
     * 组织类型
     **/
    @TableField("com_type")
    private String comType;
    /**
     * 证件类别
     **/
    @TableField("identity_type")
    private String identityType;
    /**
     * 证件号码
     **/
    @TableField("identity_no")
    private String identityNo;
    /**
     * 备案号
     **/
    @TableField("record_number")
    private String recordNumber;
    /**
     * 领导
     **/
    private String leader;
    /**
     * 状态
     **/
    @TableField(fill = FieldFill.INSERT)
    private Integer valid;
    /**
     * 创建时间
     **/
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /**
     * 更新时间
     **/
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    /**
     * 创建人员
     **/
    @TableField(fill = FieldFill.INSERT)
    private Long creator;
    /**
     * 更新人员
     **/
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updater;
}
